<?php
/**
* Класс-контролер авторизации пользователя
* 
* @author GhostCPP
* @version 1.0.0 / 21.07.2011
*/
class LoginController extends FrontEndController
{  
    public function init() 
    {
        Y::redirAuthed('user/');    
    }
    
    public function actions()
    {        
        return array(
            'captcha'=>array(
                'class'=>'CCaptchaAction',
                'backColor'=> 0xE8F4FF,
                'foreColor'=>0x5680A8,
                'maxLength'=> 7,
                'minLength'=> 7, 
                'padding' =>3,
                'width' => 220,
                'height'=> 80, 
            ),   
        );
    }    
        
    public function actionIndex()
    {
        $model = new LoginForm;
                
        // если в сессии количество ошибок больше чем указано в конфиге (numberErrorsEnteringPassword), используем каптчу
        if(Yii::app()->session->get('errorEnter') >= (int)Y::param('numberErrorsEnteringPassword', 5))
        {
            $model->useCaptcha = true;
            $model->scenario='scenarioUseCaptcha';
        } 
        
        // если AJAX-запрос, запускаем валидацию формы       
        if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
        {
            echo CActiveForm::validate($model);
            Yii::app()->end();
        }

        if(isset($_POST['LoginForm']))
        {
            $model->attributes = $_POST['LoginForm'];
            // если валидация и вход успешны, перенаправляем в личный кабинет
            if($model->validate() && $model->login())
                $this->redirect('user/');
        }
        
        $this->render('login_form', array('model' => $model));
    }
}